exp->BTP_LIST.Next = NewTempExp (exp->BTP_LIST.Next, var, no+1, needed);
}
else
exp->BTP_LIST.Next = NewTempExp (exp->BTP_LIST.Next, var, no, needed);
}
return exp;
}
}
if (exp->Kind == kBTP_EMPTY) {
# line 325 "TempVars.puma"
return exp;
}
# line 329 "TempVars.puma"
{
# line 330 "TempVars.puma"
printf ("NewTempExp failed, no = %d\n", no);
# line 331 "TempVars.puma"
printf ("exp = ");
# line 331 "TempVars.puma"
FileUnparse (stdout, exp);
# line 331 "TempVars.puma"
printf ("\n");
# line 332 "TempVars.puma"
exit (- 1);
}
return exp;
}
static tTree NewTempCShift
# if defined __STDC__ | defined __cplusplus
(register tTree exp, register tTree var, register int no, pint needed)
# else
(exp, var, no, needed)
register tTree exp;
register tTree var;
register int no;
pint needed;
# endif
{
# line 340 "TempVars.puma"
tTree newexp;
int htop;
if (exp->Kind == kFUNC_CALL_EXP) {
if (exp->FUNC_CALL_EXP.FUNC_PARAMS->Kind == kBTP_LIST) {
if (exp->FUNC_CALL_EXP.FUNC_PARAMS->BTP_LIST.Elem->Kind == kVAR_PARAM) {
if (exp->FUNC_CALL_EXP.FUNC_PARAMS->BTP_LIST.Elem->VAR_PARAM.V->Kind == kADDR) {
# line 349 "TempVars.puma"
{
# line 352 "TempVars.puma"
htop = TopLevel;
TopLevel = 0;
exp->FUNC_CALL_EXP.FUNC_PARAMS->BTP_LIST.Elem->VAR_PARAM.V->ADDR.E = NewTempExp (exp->FUNC_CALL_EXP.FUNC_PARAMS->BTP_LIST.Elem->VAR_PARAM.V->ADDR.E, var, no, needed);
TopLevel = htop;
if (exp->FUNC_CALL_EXP.FUNC_PARAMS->BTP_LIST.Elem->VAR_PARAM.V->ADDR.E->Kind == kVAR_EXP)